diff --git a/system/database/DB_active_rec.php b/system/database/DB_active_rec.php
index fccf1b0..3558683 100644
--- a/system/database/DB_active_rec.php
+++ b/system/database/DB_active_rec.php
@@ -821,11 +821,10 @@
 	/**
 	 * Sets the HAVING values
 	 *
-	 * Called by having() or orhaving()
+	 * Called by having() or or_having()
 	 *
 	 * @access	private
 	 * @param	string
-
 	 * @param	string
 	 * @return	object
 	 */
diff --git a/system/database/DB_forge.php b/system/database/DB_forge.php
index cc88c32..d48165e 100644
--- a/system/database/DB_forge.php
+++ b/system/database/DB_forge.php
@@ -97,6 +97,16 @@
 	 */
 	function add_key($key = '', $primary = FALSE)
 	{
+		if (is_array($key))
+		{
+			foreach($key as $one)
+			{
+				$this->add_key($one, $primary);
+			}
+			
+			return;
+		}
+	
 		if ($key == '')
 		{
 			show_error('Key information is required for that operation.');
diff --git a/system/database/drivers/mssql/mssql_driver.php b/system/database/drivers/mssql/mssql_driver.php
index 9a912a3..fd3f963 100644
--- a/system/database/drivers/mssql/mssql_driver.php
+++ b/system/database/drivers/mssql/mssql_driver.php
@@ -87,7 +87,7 @@
 	 */
 	function db_set_charset($charset, $collation)
 	{
-		// TODO - add support if needed
+		// @todo - add support if needed
 		return TRUE;
 	}
 
diff --git a/system/database/drivers/mysql/mysql_driver.php b/system/database/drivers/mysql/mysql_driver.php
index de372e6..52df1e5 100644
--- a/system/database/drivers/mysql/mysql_driver.php
+++ b/system/database/drivers/mysql/mysql_driver.php
@@ -314,6 +314,9 @@
 	
 		$query = $this->query($this->_count_string . $this->_protect_identifiers('numrows'). " FROM " . $this->_protect_identifiers($this->dbprefix.$table));
 		
+		if ($query->num_rows() == 0)
+			return '0';
+
 		$row = $query->row();
 		return (int)$row->numrows;
 	}
diff --git a/system/database/drivers/oci8/oci8_driver.php b/system/database/drivers/oci8/oci8_driver.php
index b45b003..9d91932 100644
--- a/system/database/drivers/oci8/oci8_driver.php
+++ b/system/database/drivers/oci8/oci8_driver.php
@@ -111,7 +111,7 @@
 	 */
 	function db_set_charset($charset, $collation)
 	{
-		// TODO - add support if needed
+		// @todo - add support if needed
 		return TRUE;
 	}
 
diff --git a/system/database/drivers/odbc/odbc_driver.php b/system/database/drivers/odbc/odbc_driver.php
index ed8f81c..06282e5 100644
--- a/system/database/drivers/odbc/odbc_driver.php
+++ b/system/database/drivers/odbc/odbc_driver.php
@@ -94,7 +94,7 @@
 	 */
 	function db_set_charset($charset, $collation)
 	{
-		// TODO - add support if needed
+		// @todo - add support if needed
 		return TRUE;
 	}
 
diff --git a/system/database/drivers/postgre/postgre_driver.php b/system/database/drivers/postgre/postgre_driver.php
index 3d006d3..55f6502 100644
--- a/system/database/drivers/postgre/postgre_driver.php
+++ b/system/database/drivers/postgre/postgre_driver.php
@@ -92,7 +92,7 @@
 	 */
 	function db_set_charset($charset, $collation)
 	{
-		// TODO - add support if needed
+		// @todo - add support if needed
 		return TRUE;
 	}
 
diff --git a/system/database/drivers/sqlite/sqlite_driver.php b/system/database/drivers/sqlite/sqlite_driver.php
index 46e0fae..7821569 100644
--- a/system/database/drivers/sqlite/sqlite_driver.php
+++ b/system/database/drivers/sqlite/sqlite_driver.php
@@ -113,7 +113,7 @@
 	 */
 	function db_set_charset($charset, $collation)
 	{
-		// TODO - add support if needed
+		// @todo - add support if needed
 		return TRUE;
 	}
 
@@ -651,24 +651,6 @@
 		@sqlite_close($conn_id);
 	}
 
-	// --------------------------------------------------------------------
-
-	/**
-	 * Rename a table
-	 *
-	 * Generates a platform-specific query so that a table can be renamed
-	 *
-	 * @access	private
-	 * @param	string	the old table name
-	 * @param	string	the new table name
-	 * @return	string
-	 */
-	function _rename_table($table_name, $new_table_name)
-	{
-		$sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table_name)." RENAME TO ".$this->db->_protect_identifiers($new_table_name);
-		return $sql;
-	}
-
 
 }
 
diff --git a/system/database/drivers/sqlite/sqlite_forge.php b/system/database/drivers/sqlite/sqlite_forge.php
index 05f366a..631c9c7 100644
--- a/system/database/drivers/sqlite/sqlite_forge.php
+++ b/system/database/drivers/sqlite/sqlite_forge.php
@@ -144,7 +144,7 @@
 			$primary_keys = $this->db->_protect_identifiers($primary_keys);
 			$sql .= ",\n\tPRIMARY KEY (" . implode(', ', $primary_keys) . ")";
 		}
-		
+
 		if (is_array($keys) && count($keys) > 0)
 		{
 			foreach ($keys as $key)
@@ -161,7 +161,7 @@
 				$sql .= ",\n\tUNIQUE (" . implode(', ', $key) . ")";
 			}
 		}
-		
+
 		$sql .= "\n)";
 
 		return $sql;
@@ -241,6 +241,24 @@
 		return $sql;
 		
 	}
+
+	// --------------------------------------------------------------------
+
+	/**
+	 * Rename a table
+	 *
+	 * Generates a platform-specific query so that a table can be renamed
+	 *
+	 * @access	private
+	 * @param	string	the old table name
+	 * @param	string	the new table name
+	 * @return	string
+	 */
+	function _rename_table($table_name, $new_table_name)
+	{
+		$sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table_name)." RENAME TO ".$this->db->_protect_identifiers($new_table_name);
+		return $sql;
+	}
 }
 
 /* End of file sqlite_forge.php */
